package Collection;

import java.util.*;

public class lambdaDemo {
    public static void main(String[] args) {
        /*lambda表达式
        可以更简洁的代码实现匿名内部类

        1不是所有的匿名内部类douneneg都能转换为lambda表达式
         2lambda表达式对接口的要求 只能是函数式接口
         3函数式接口 接口要求实现类必须重写的方法只有一个
          */
        List<String> list =new ArrayList<>();
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();
            }
        });
        //lanbda表达式写法

        Collections.sort(list, (String o1, String o2)-> {
                return o1.length()-o2.length();
            }
        );

        //lanbda表达式中参数类型可以不写
        Collections.sort(list, (o1,  o2)-> {
                    return o1.length()-o2.length();
                }
        );

        //lanbda表达式中方法体只有一句话 方法体{}可以不写，如果这句话中有return也一并不写
        Collections.sort(list, (o1,  o2)-> o1.length()-o2.length());

        //lanbda表达式的方法参数只有一个那么（）可以忽略不写   --这里不适用

    }
}
